import request from '@/utils/request.js'

// 登录注册
export const login = data => {
  return request({
    method: 'POST',
    url: '/v1_0/authorizations',
    data
  })
}

// 发送短信验证码
// path: /v1_0/sms/codes/:mobile
export const SendSms = mobile => {
  return request({
    method: 'GET',
    url: `/v1_0/sms/codes/${mobile}`
  })
}

// 获取用户自己信息
// path: /v1_0/user/user
export const getCurrentUser = () => {
  return request({
    method: 'GET',
    url: '/v1_0/user'
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 获取用户个人资料
// path: /v1_0/user/profile
export const getUserProfile = () => {
  return request({
    method: 'GET',
    url: '/v1_0/user/profile'
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 编辑用户个人资料
// path: /v1_0/user/profile
export const updateUserProfile = data => {
  return request({
    method: 'PATCH',
    url: '/v1_0/user/profile',
    data
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 编辑用户照片资料
// path: /v1_0/user/photo
export const updateUserImage = data => {
  return request({
    method: 'PATCH',
    url: '/v1_0/user/photo',
    data
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 获取用户频道列表
// path: /v1_0/user/channels
export const getUserChannels = () => {
  return request({
    method: 'GET',
    url: '/v1_0/user/channels'
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 获取首页推荐文章列表
// path: /v1_0/articles
export const getChannelsList = params => {
  return request({
    method: 'GET',
    url: '/v1_0/articles',
    params
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 获取所有频道列表
// path: /v1_0/channels
export const getAllChannels = () => {
  return request({
    method: 'GET',
    url: '/v1_0/channels'
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 设置用户的频道（部分覆盖）
// path: /v1_0/user/channels
export const setUserChannel = data => {
  return request({
    method: 'PATCH',
    url: '/v1_0/user/channels',
    data
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 删除指定的用户频道
// path: /v1_0/user/channels/:target
export const deleteUserChannelApi = data => {
  return request({
    method: 'DELETE',
    url: `/v1_0/user/channels/${data}`
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 获取联想建议（自动补全）
// path: /v1_0/suggestion
export const getSearchSuggestions = q => {
  return request({
    method: 'GET',
    url: '/v1_0/suggestion',
    params: {
      q
    }
  })
}

// 获取搜索结果
// path: /v1_0/search
export const getSearchResult = params => {
  return request({
    method: 'GET',
    url: '/v1_0/search',
    params
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 关注用户
// path: /v1_0/user/followings
export const addFollowings = target => {
  return request({
    method: 'POST',
    url: '/v1_0/user/followings',
    data: {
      target
    }
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}

// 取消关注用户
// path: /v1_0/user/followings/:target
export const deleteFollowings = authorId => {
  return request({
    method: 'DELETE',
    url: `/v1_0/user/followings/${authorId}`
    // 这里还需要在请求头里添加 token 信息，不过已经在 request 请求拦截器里配置了
  })
}
